package editorsvg.css;

import editorsvg.editor.documento.ElementoSVG;

/**
 *
 * @author Jorge
 */
public class CondicionTag extends Condicion {

    private String nombreTag;
    private Condicion siguienteCondicion;

    public CondicionTag(String nombreTag, Condicion siguienteCondicion) {
        this.nombreTag = nombreTag;
        this.siguienteCondicion = siguienteCondicion;
    }

    @Override
    public String toString() {
        return "tag=" + nombreTag;
    }

    @Override
    public boolean evaluar(ElementoSVG elemento, Regla regla) {
        if (nombreTag != null && !nombreTag.equals(elemento.getNombreTag())) {
            return false;
        }
        if (siguienteCondicion == null) {
            if (regla != null) {
                regla.aplicarAsignaciones(elemento);
            }
            return true;
        }
        return siguienteCondicion.evaluar(elemento, regla);
    }

    @Override
    public int getEspecificidad() {
        return 1 + (siguienteCondicion != null ? siguienteCondicion.getEspecificidad() : 0);
    }
}
